#ifndef TEST_HTMLOUTPUT_H_
#define TEST_HTMLOUTPUT_H_

#include <iostream>
#include <string>

#include "../Test/CollectorOutput.h"

namespace uav
{
namespace test
{

/// \brief HTML output.
///
/// %Output handler that creates a HTML table with detailed information
/// about all tests.
///
class HtmlOutput : public CollectorOutput
{
public:
	void generate(std::ostream& os, bool incl_ok_tests = true,
				  const std::string& name = "");

private:
	struct SuiteRow;
	struct TestRow;
	struct TestSuiteRow;
	struct TestResult;
	struct TestResultAll;
	struct SuiteTestResult;

	friend struct TestSuiteRow;
};

}}

#endif
